import { PartialWithObject } from '@ibiz-template/core';
import { ISysCalendarItem } from '@ibiz/model-core';
import {
  EventBase,
  IControlEvent,
  LoadEvent,
  NavViewChangeEvent,
} from '@ibiz-template/runtime';

export interface IResourceScheduleTableEvent extends IControlEvent {
  /**
   *  导航视图变更事件
   *
   * @type {{
   *     event: NavViewChangeEvent;
   *     emitArgs: PartialWithObject<NavViewChangeEvent, EventBase>;
   *   }}
   * @memberof IResourceScheduleTableEvent
   */
  onNavViewChange: {
    event: NavViewChangeEvent;
    emitArgs: PartialWithObject<NavViewChangeEvent, EventBase>;
  };

  /**
   * 更新表格行高
   *
   * @type {{
   *     emitArgs: IData;
   *   }}
   * @memberof IResourceScheduleTableEvent
   */
  updateTableLineHeight: {
    event: EventBase;
    emitArgs: IData;
  };

  /**
   * @description 加载前事件
   * @type {{
   *     event: EventBase;
   *     emitArgs: Partial<EventBase>;
   *   }}
   * @memberof IResourceScheduleTableEvent
   */
  onBeforeLoad: {
    event: EventBase;
    emitArgs: Partial<EventBase>;
  };

  /**
   * @description 加载成功
   * @type {{
   *     event: LoadEvent;
   *     emitArgs: PartialWithObject<
   *       LoadEvent,
   *       EventBase
   *     >;
   *   }}
   * @memberof IResourceScheduleTableEvent
   */
  onLoadSuccess: {
    event: LoadEvent;
    emitArgs: PartialWithObject<LoadEvent, EventBase>;
  };
}
